﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using BALayer;
using System.Data.SqlClient;

namespace QuanLyDoan
{
    public partial class FrmDanhGiaHoatDong : Form
    {
        DBTTHoatDong dbThongTinHD;
        DBCTHoatDong dbChuongTrinhHD;

        DataTable dtThongTinHD = null;
        DataTable dtChuongTrinhHD = null;

        public FrmDanhGiaHoatDong()
        {
            InitializeComponent();
            dbThongTinHD = new DBTTHoatDong();
            dbChuongTrinhHD = new DBCTHoatDong();
        }

        void LoadData()
        {
            dtThongTinHD = new DataTable();
            dtThongTinHD.Clear();
            dtThongTinHD = dbThongTinHD.LayDanhGiaHoatDong().Tables[0];

            dtChuongTrinhHD = new DataTable();
            dtChuongTrinhHD.Clear();
            dtChuongTrinhHD = dbChuongTrinhHD.LayCTHoatDong().Tables[0];

            MaHD.DataSource = dtChuongTrinhHD;
            MaHD.ValueMember = "MaHD";
            MaHD.DisplayMember = "TenHD";

            cbHoatDong.DataSource = dtChuongTrinhHD;
            cbHoatDong.ValueMember = "MaHD";
            cbHoatDong.DisplayMember = "TenHD";

            dgvDanhGiaHoatDong.DataSource = dtThongTinHD;

            //Không cho thao tác trên nút Lưu/Hủy
            this.btnHuy.Enabled = false;
            this.btnLuu.Enabled = false;
            this.grCTHoatDong.Enabled = false;
            //Cho thao tác trên các nút Đánh giá / Thoát 
            this.btnDanhGia.Enabled = true;
            this.btnThoat.Enabled = true;

            dgvDanhGiaHoatDong_CellClick(null, null);
        }

        private void FrmDanhGiaHoatDong_Load(object sender, EventArgs e)
        {
            LoadData();
        }

        private void dgvDanhGiaHoatDong_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            // Thứ tự dòng hiện hành 
            int r = dgvDanhGiaHoatDong.CurrentCell.RowIndex;

            // Chuyển thông tin lên groupbox 
            cbHoatDong.SelectedValue =
                dgvDanhGiaHoatDong.Rows[r].Cells[0].Value.ToString();
            dtpBatDau.Text =
                dgvDanhGiaHoatDong.Rows[r].Cells[1].Value.ToString();

            ckSoLuong.Checked =
                bool.Parse(dgvDanhGiaHoatDong.Rows[r].Cells[2].Value.ToString());
            ckTienDo.Checked =
                bool.Parse(dgvDanhGiaHoatDong.Rows[r].Cells[3].Value.ToString());
            ckChatLuong.Checked =
                bool.Parse(dgvDanhGiaHoatDong.Rows[r].Cells[4].Value.ToString());
            ckKinhPhi.Checked =
                bool.Parse(dgvDanhGiaHoatDong.Rows[r].Cells[5].Value.ToString());
        }

        private void btnReLoad_Click(object sender, EventArgs e)
        {
            LoadData();
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnDanhGia_Click(object sender, EventArgs e)
        {
            grCTHoatDong.Enabled = true;

            this.cbHoatDong.Enabled = false;
            this.dtpBatDau.Enabled = false;

            //cho thao tác trên nút Lưu/Hủy
            this.btnHuy.Enabled = true;
            this.btnLuu.Enabled = true;

            ckSoLuong.Enabled = false;

            // Thứ tự dòng hiện hành 
            int r = dgvDanhGiaHoatDong.CurrentCell.RowIndex;

            // Chuyển thông tin lên groupbox 
            cbHoatDong.SelectedValue =
                dgvDanhGiaHoatDong.Rows[r].Cells[0].Value.ToString();
            dtpBatDau.Text =
                dgvDanhGiaHoatDong.Rows[r].Cells[1].Value.ToString();
            ckSoLuong.Checked =
                bool.Parse(dgvDanhGiaHoatDong.Rows[r].Cells[2].Value.ToString());
            ckTienDo.Checked =
                bool.Parse(dgvDanhGiaHoatDong.Rows[r].Cells[3].Value.ToString());
            ckChatLuong.Checked =
                bool.Parse(dgvDanhGiaHoatDong.Rows[r].Cells[4].Value.ToString());
            ckKinhPhi.Checked =
                bool.Parse(dgvDanhGiaHoatDong.Rows[r].Cells[5].Value.ToString());
        }

        private void btnLuu_Click(object sender, EventArgs e)
        {
            DateTime thoigian = DateTime.Parse(dtpBatDau.Text);
            string maHD = cbHoatDong.SelectedValue.ToString();
            bool tiendo = ckTienDo.Checked;
            bool kinhphi = ckKinhPhi.Checked;
            bool chatluong = ckChatLuong.Checked;
            string err = "";
            try
            {
                bool f = dbThongTinHD.SuaDanhGiaHoatDong(ref err, maHD, thoigian, tiendo, chatluong, kinhphi);
                if (f)
                {
                    // Load lại dữ liệu trên DataGridView 
                    LoadData();
                    // Thông báo 
                    MessageBox.Show("Đã cập nhật xong!");
                }
                else
                {
                    MessageBox.Show("Chưa cập nhật xong!\n\r" + "Lỗi:" + err);
                }
            }
            catch (SqlException)
            {
                MessageBox.Show("Không cập nhật được. Lỗi rồi!");
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            LoadData();
        }

        private void txtTenHD_TextChanged(object sender, EventArgs e)
        {

        }

        private void txtThang_TextChanged(object sender, EventArgs e)
        {

            string text = txtTenHD.Text.ToString();
            string thang = txtThang.Text.ToString();
            string nam = txtNam.Text.ToString();
            DataTable dt = new DataTable();
            dt.Clear();
            dt = dbThongTinHD.TimKiemDGHoatDong(text, thang, nam).Tables[0];

            dgvDanhGiaHoatDong.DataSource = dt;

            if (dgvDanhGiaHoatDong.RowCount == 0)
            {
                MessageBox.Show("Không tồn tại dữ liệu nào trong CSDL!!!");
                txtThang.ResetText();
            }

        }

        private void txtNam_TextChanged(object sender, EventArgs e)
        {

            string text = txtTenHD.Text.ToString();
            string thang = txtThang.Text.ToString();
            string nam = txtNam.Text.ToString();
            DataTable dt = new DataTable();
            dt.Clear();
            dt = dbThongTinHD.TimKiemDGHoatDong(text, thang, nam).Tables[0];

            dgvDanhGiaHoatDong.DataSource = dt;

            if (dgvDanhGiaHoatDong.RowCount == 0)
            {
                MessageBox.Show("Không tồn tại dữ liệu trong CSDL!!!");
                txtNam.ResetText();
            }

        }

        private void txtTenHD_KeyPress(object sender, KeyPressEventArgs e)
        {
            string text = txtTenHD.Text.ToString();
            string thang = txtThang.Text.ToString();
            string nam = txtNam.Text.ToString();
            if (e.KeyChar == 13)
            {
                DataTable dt = new DataTable();
                dt.Clear();
                dt = dbThongTinHD.TimKiemDGHoatDong(text, thang, nam).Tables[0];

                dgvDanhGiaHoatDong.DataSource = dt;

                if (dgvDanhGiaHoatDong.RowCount == 0)
                {
                    MessageBox.Show("Không tồn tại tên này trong CSDL!!!");
                    txtTenHD.ResetText();
                }
            }
        }
    }
}
